/**
 * 指定方法后的返回值组成的新数组
 * @param {Object} data 
 * @param {Function} iterate 回调函数
 * @param {Object} context 上下文
 * @returns {Array}
 */
function arrayMap(data, iterate, context) {
  let result = [];
  if (data && arguments.length > 1) {
    if (data.map) {
      result = data.map(iterate, context);
    } else {
      for (let i = 0; i < data.length; i++) {
        result.push(iterate.apply(context, arguments));
      }
    }
  }
  return result;
}

module.exports = arrayMap;